package cn.iocoder.yudao.module.ride.controller.admin.bindlog.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;

@Schema(description = "管理后台 - 车辆绑定/解绑记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class BindLogRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "16003")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "序号")
    @ExcelProperty("序号")
    private Integer seqNo;

    @Schema(description = "司机姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
    @ExcelProperty("司机姓名")
    private String driverName;

    @Schema(description = "车辆颜色")
    @ExcelProperty("车辆颜色")
    private String vehicleColor;

    @Schema(description = "车牌号")
    @ExcelProperty("车牌号")
    private String plateNo;

    @Schema(description = "操作类型", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty(value = "操作类型", converter = DictConvert.class)
    @DictFormat("bind_action") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Integer bindAction;

    @Schema(description = "操作人账号或姓名")
    @ExcelProperty("操作人账号或姓名")
    private String operator;

    @Schema(description = "车辆级别")
    @ExcelProperty("车辆级别")
    private String vehicleLevel;

    @Schema(description = "车型描述")
    @ExcelProperty("车型描述")
    private String vehicleDesc;

    @Schema(description = "操作时间")
    @ExcelProperty("操作时间")
    private LocalDateTime operateTime;

    @Schema(description = "车辆总里程")
    @ExcelProperty("车辆总里程")
    private Integer totalMileage;

}
